Currently, a new non volatile memory technology is emerging in smart cards: Flash technology. The Flash memory is organised in sectors as shown on FIG. 1 (sectors 1, 2 and 3). Each sector is a memory block of unique size. The memory space of each sector is divided into memory pages, for example of 128 bytes, grouped into partitions or segments (e.g.: partition Appli1, partition Appli2, partition Appli3 and partition OS of sector 1 on FIG. 1), used to store various software modules (Appli1, Appli2, Appli3, OS). A partition contains all pages of a sector allocated to a given owner.
In the multi-application cards, several applications may share the same sector (for example, applications 1, 2 and 3 share sector 1 on FIG. 1).
The access controllers of known type provide a given application with write access to a sector it owns or shares. In the Flash memory, a sector defines the unit of erasable memory: consequently to modify a non-blank area of the sector, for example a partition, the entire sector must be erased. To write in a non-blank area of a sector, the entire sector is erased: a sector forms an indivisible unit for erasure. As shown on FIG. 1 therefore, if application 1 wants to modify sector 1, it could erase the data of application 2 or even of the operating system. When erasing before writing, partitions containing data belonging to other applications could suffer irrevocable damage.
One known solution is to allocate an entire sector to a single owner. When the sector is large, however, there is a significant loss of memory space and poor flexibility.
One objective of this invention is to optimise the write operation in a Flash memory.